Engineers use compression (also called coding or encoding) to reduce the bit rate of digital video. Compression decreases the cost of storing and transmitting video by converting the video into a lower bit rate form. Decompression (also called decoding) reconstructs a version of the original video from the compressed form. A “codec” is an encoder/decoder system.
Generally, much of the bit rate reduction from compression is achieved through quantization. According to one possible definition, quantization is a term used for an approximating non-reversible mapping function commonly used for lossy compression, in which there is a specified set of possible output values, and each member of the set of possible output values has an associated set of input values that result in the selection of that particular output value. A variety of quantization techniques have been developed, including scalar or vector, uniform or non-uniform, with or without dead zone, and adaptive or non-adaptive quantization.
In many implementations, an encoder performs quantization essentially as a biased division of an original data value by a quantization factor. One or more quantization parameters (QPs) indicate the quantization factor for purposes of inverse quantization of the data value. For inverse quantization, often implemented as a multiplication operation, an encoder or decoder reconstructs a version of the data value using the quantization factor indicated by the QP(s). Quantization typically introduces loss in fidelity to the original data value, which can show up as compression errors or artifacts in the results of decoding.
Most scalable video codecs split video into a base layer and an enhancement layer. The base layer alone provides a reconstruction of the video at a lower quality level and/or a lower resolution, and the enhancement layer can be added to provide extra information that will increase the video quality. Many single-layer digital video coding standards today allow for QPs to vary spatially in the base layer. This feature allows encoding to adapt to the macroblock characteristics and thus achieve better perceptual quality for a given rate.
While the above described techniques provide acceptable performance in some instances of scalable video coding, none of them provide the advantages and benefits of the techniques and tools described below.